import Vue from "vue";
import App from "./App.vue";
import axios from "axios";
import router from "./router";
import "./plugins/element.js";
import "./style/style.less";
import "./assets/fonts/iconfont.css";
import dayjs from "dayjs"; //这是好用的时间处理包
import { Message } from "element-ui";

console.log(process.env);

//dayjs（） 获取当前时间变成dayjs规定的对象
//dayjs（）.format() 将该对象格式化成对应日期格式
Vue.filter("formate", (val, pix = "YYYY-MM-DD HH:mm:ss") => {
  return dayjs(val * 1000).format(pix);
});
Vue.config.productionTip = false;
//我们可以把所有组件都想得到的东西挂载到vue的原型上面
// 创建axios实例对象
const devApiUrl = "http://127.0.0.1:8888/api/private/v1/"; //开发接口地址
const prodApiUrl = "http://122.51.249.55:5000/api/private/v1/"; //上线接口地址
const $axios = axios.create({
  baseURL: process.env.NODE_ENV === "production" ? prodApiUrl : devApiUrl
  //   baseURL: process.env.VUE_APP_API_URL
  //   timeout: 5000
});
//请求拦截器
$axios.interceptors.request.use(
  config => {
    const user = localStorage.getItem("HEIMA_SHOP_USER");
    //   判断是否登录了
    if (user) {
      // 解构出token
      const { token } = JSON.parse(user);
      //请求头携带token
      config.headers.Authorization = token;
    }
    return config;
  },
  error => {
    return Promise.reject(error);
  }
);
//响应拦截器
$axios.interceptors.response.use(response => {
  if (response.data && response.data.meta.status === 400) {
    Message.error("token过期，重新登录");
    localStorage.removeItem("HEIMA_SHOP_USER");
    router.push("/login?url=" + router.history.current.path);
  } else {
    return response;
  }
});
Vue.prototype.$axios = $axios;
new Vue({
  router,
  render: h => h(App)
}).$mount("#app");
